﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AntMovernent.SolidTechESerialCard.Enum
{
    public enum SolidErrorCode : int
    {
        SLDM_ERR_OK = 0,                 /*无错误*/
        SLDM_ERR_PMVAL = -1,             /*参数值错误*/
        SLDM_ERR_PULSEOVERFLOW = -2,             /*脉冲发生器溢出*/
        SLDM_ERR_PMID = -3,              /*参数ID不存在，无此参数*/
        SLDM_ERR_MCMAX = -4,             /*控制器不存在，超出系统支持的最大控制器索引号*/
        SLDM_ERR_CHMAX = -5,             /*通道号不存在，超出系统最大通道数*/
        SLDM_ERR_AXISMAX = -6,               /*轴号不存在，超出系统最大轴数*/
        SLDM_ERR_NOAUTH = -7,                /*控制器无授权*/
        SLDM_ERR_ADDROVERFLOW = -8,              /*参数地址溢出*/
        SLDM_ERR_NOFLAG = -9,                /*没有此状态或标志*/
        SLDM_ERR_NONSTOPPED = -10,               /*运动没有停止*/
        SLDM_ERR_MCNOFILE = -11,             /*文件号打开失败。文件号不存在，或SD卡不存在。*/
        SLDM_ERR_HOSTNOFILE = -12,               /*HOST打开文件失败*/
        SLDM_ERR_AXISALM = -13,              /*轴伺服报警*/
        SLDM_ERR_AXISPOT = -14,              /*轴正向硬限位*/
        SLDM_ERR_AXISNOT = -15,              /*轴负向硬限位*/
        SLDM_ERR_AXISPSL = -16,              /*轴正向软限位*/
        SLDM_ERR_AXISNSL = -17,              /*轴负向软限位*/
        SLDM_ERR_AXISESTOP = -18,                /*硬急停*/
        SLDM_ERR_AXISOT = -19,               /*轴硬限位*/
        SLDM_ERR_AXISSL = -20,               /*轴软限位*/
        SLDM_ERR_PARANUM = -25,              /*函数参数个数错误*/

        SLDM_ERR_CURRENTPOS = -30,               /*脉冲位置与插补位置误差过大*/
        SLDM_ERR_ARCRADIUS = -32,                /*圆弧半径误差过大*/
        SLDM_ERR_ENDPOS = -33,               /*终点位置错误*/
        SLDM_ERR_INDEXMAX = -34,             /*参数索引号错误，超出最大索引号*/
        SLDM_ERR_ADDRMAX = -35,              /*参数地址号错误，超出最大地址号*/
        SLDM_ERR_FUNCTIONEN = -36,               /*模式功能没有使能或初始化*/
        SLDM_ERR_BUFFENABLE = -37,               /*缓冲区禁止操作*/
        SLDM_ERR_BUFFMAX = -39,              /*超过最大缓冲区容量*/
        SLDM_ERR_SPITIMEOVER = -40,              /*spi通讯超时*/
        SLDM_ERR_SPISYSTICKS = -41,              /*spi心跳错误*/

        PULSE_NUM_LESS_1 = -57,              /*脉冲个数小于1*/
        PULSE_PERIOD_LESS_1 = -58,               /*脉冲周期小于1*/
        OVERPPOS = -59,              /*正向位置溢出*/
        OVERNPOS = -60,              /*负向位置溢出*/
        PT_PLAN_OUT = -61,               /*PT运动数字输出错误*/
        HOMEING_MOVE = -62,              /*回零中，反向限位报警*/
        BLOCK_EDGE_OUT = -63,                /*缓冲区运动数字输出错误*/
        BLOCK_EDGE_PTP1 = -64,               /*缓冲区运动直线插补错误*/
        BLOCK_EDGE_ARC = -65,                /*缓冲区运动圆弧插补错误*/
        BLOCK_EDGE_RESTARTMOVE = -66,                /*缓冲区运动启动函数错误*/
        BLOCK_ADD_POS = -67,             /*缓冲区运动合成距离为0错误*/

        SLDM_ERR_OPEN = -90,             /*控制卡打开失败*/
        SLDM_ERR_OPENED = -91,               /*控制卡已经打开*/
        SLDM_ERR_FREE = -92,             /*函数直接退出*/
        SLDM_ERR_IO_OVERTIME = -93,              /*控制器IO通讯超时*/
        SLDM_ERR_PC_IPADDR = -99,                /*PC IP地址错误,或未连接*/

        SLDM_ERR_FPGA_CMDBUFFFULL = -100,                /*FPGA指令缓冲区满*/
        SLDM_ERR_COM_ADDR = -101,                /*与HOST通讯的设备地址错误*/
        SLDM_ERR_COM_CHECKSUM = -102,                /*与HOST通讯的校验和错误*/
        SLDM_ERR_COM_INVCMD = -103,              /*与HOST通讯的命令ID错误*/
        SLDM_ERR_SOCKET = -104,              /*HOST库中，SOCKET初始化失败*/
        SLDM_ERR_SHM = -105,             /*HOST库中，SHM初始化失败*/
        SLDM_ERR_PIPE = -106,                /*HOST库中，PIPE初始化失败*/
        SLDM_ERR_NOLIBINITD = -107,              /*HOST库没有初始化*/
        SLDM_ERR_NOMCOPEN = -108,                /*控制器未打开,或控制器关闭失败*/
        SLDM_ERR_MCOPEND = -109,             /*HOST库中，控制器已打开*/
        SLDM_ERR_MC_NONCONNECT = -110,               /*HOST与控制器通讯超时，未连接*/
        SLDM_ERR_MC_CONNECTING = -111,               /*HOST与控制器正在连接*/
        SLDM_ERR_THREAD = -112,              /*HOST库中，线程初始化失败*/
        SLDM_ERR_BUFFIDX = -113,             /*命令缓冲区索引号错误*/
        SLDM_ERR_REFMESSAGE = -114,              /*收到错误报文*/
        SLDM_ERR_PREBUFFFULL = -115,             /*标准命令块的预缓冲区满*/
        SLDM_ERR_BUFFFULL = -116,           /*标准命令块缓冲区满*/

        SLDM_ERR_FB_TIMEOUT = -121,             /*伺服现场总线超时*/
        SLDM_ERR_FB_NCYCWNG = -122,             /*伺服总线中非周期命令执行报警*/
        SLDM_ERR_FB_CCYCERR = -123,              /*伺服总线中非周期命令执行错误*/

        SLDM_ERR_SERVICE_STOP = -230,                /*控制器服务程序停止*/
        SLDM_ERR_UPDATE = -255,              /*内部使用，更新命令*/
    }
}
